For each..next
Оператор управления for each..next является компонентом итерации скрипта, который выполняет один или несколько операторов для каждого значения в списке, разделенном запятой. Операторы внутри цикла, заключенного с помощью for и next, выполняются для каждого значения списка.
Синтаксис:
С помощью специального синтаксиса можно создавать списки с именами файлов и каталогов в текущем каталоге.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Аргументы:
Аргумент | Описание |
---|---|
var | Имя переменной скрипта, которое получает новое значение из списка для каждого выполнения цикла. Если переменная var задана после next, она должна иметь такое же имя переменной, как указано после соответствующего предложения for each. |
Значение переменной var может быть изменено операторами внутри цикла, однако это делать не рекомендуется.
Если в цикле появляется предложение exit for, выполнение скрипта будет передано первому оператору после предложения next, указывающего на конец цикла. Предложение exit for можно сделать условным с помощью дополнительного использования суффикса when или unless.
Синтаксис:
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
Аргумент | Описание |
---|---|
constant | Любое число или строка. Обратите внимание на то, что строка, непосредственно записываемая в скрипте, должна быть заключена в одинарные кавычки. Строка без одинарных кавычек будет интерпретироваться как переменная с использованием значения переменной. Числа не нужно заключать в одинарные кавычки. |
expression | Произвольное выражение. |
mask | Маска имени файла или папки, которая может включать в себя любые допустимые в имени файла символы и стандартные знаки подстановки, * и ?. Можно использовать абсолютные пути к файлу или пути lib://. |
condition | Логическое выражение, имеющее значение True или False. |
statements | Любая группа, состоящая из одного или нескольких операторов скрипта Qlik Sense. |
filelist mask | Такой синтаксис создает разделенный запятыми список всех файлов в текущем каталоге, соответствующих маске имени файла. |
dirlist mask | Такой синтаксис создает разделенный запятыми список всех папок в текущей папке, соответствующей маске имени папки. |
fieldvaluelist mask | Этот синтаксис повторяется в значениях поля, которое уже загружено в Qlik Sense. |
Пример 1: Загрузка списка файлов
Пример 2: Создание списка файлов на диске
В этом примере показана загрузка всех файлов в папке, относящихся к программе Qlik Sense.
Пример 3: Повторяясь в значениях поля
Этот пример повторяется в списке загруженных значений элемента FIELD и создает новое поле NEWFIELD. Для каждого значения элемента FIELD необходимо создать две записи NEWFIELD.
Полученная таблица выглядит следующим образом:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |